#! /usr/bin/env/python3
# _*_ coding:UTF-8 _×_
'''
    根据文件类型确认文件
    作者：王楠
    日期：2020/03/03
'''
import json
import csv
import os    # os.path.splitext(filepath) 文件名和　和文件类型


def json_to_dict(filepath):
    '''
    打开json文件 返回字典dict,用于操作
    '''
    # f = open(filepath, 'r', encoding='utf-8')
    # json_list = json.load(f)
    # f.close()
    # return json_list
    with open(filepath, 'r', encoding='utf-8') as f:
        json_list = json.load(f)
    return json_list


def csv_to_list(filepath):
    '''
    处理ｃｓｖ文件
    '''
    lines_of_csv = []
    with open(filepath, 'r', encoding='UTF-8', newline='') as f:
        csv_class = csv.reader(f)
        print(csv_class)
        for line in csv_class:
            print(line)
            print(', '.join(line))
            lines_of_csv.append(line)
    return lines_of_csv


def json_dict_to_list(json_dict):
    '''
    输入一个json转换成的dict，返回一个lines_list，用于转换为csv文件
    '''
    lines_list = []      # 第一行数：列名 及字典dict的key
    lines_list.append(list(json_dict[0].keys()))
    for item in json_dict:
        lines_list.append(list(item.values()))
    return lines_list


def main():
    '''
    主函数
    '''
    filepath = input('请输入文件路径及文件名：')
    filename, file_ext = os.path.splitext(filepath)
    print(filename, file_ext)
    if file_ext == '.json':
        # json文件
        json_list = json_to_dict(filepath)
        json_list.sort(key=lambda position: position['aqi'],  reverse=True)
        lines_list = json_dict_to_list(json_list)
        print(lines_list)
        # print(json_list)
        # for json_list_item in json_list:
        #     print(json_list_item, end='\n\n\n')
        # position 为函数参数，在此处为每一个json_list的每一个dict,reverse=True升序
        f = open('/home/wangnan/文档/python/小象学院/09 空气指数/shanghai.csv', 'w', encoding='UTF-8', newline='')
        writer = csv.writer(f)
        for line in lines_list:
            print(line)
            writer.writerow(line)
        f.close()
        f = open('/home/wangnan/文档/python/小象学院/09 空气指数/shanghai.txt', 'w', encoding='UTF-8', newline='\n')
        for line in lines_list:
            f.write(', '.join(str(x) for x in line) + '\n')
        f.close()

    elif file_ext == '.csv':
        # csv文件
        csv_list = csv_to_list(filepath)
        print(csv_list)
    else:
        print('文件不支持类型')


if __name__ == '__main__':
    main()
